var formidable = require('formidable');
var http = require('http');
var util = require('util');
var url = require('url');
// 为了避免传递数据的字符乱码，可以先设置接收数据的字符编码，form.encoding='utf-8'；然后使用form.parse方法解析POST数据；
// 使用该模块后，原生的获取POST数据的方法可能会有影响；
http.createServer(function(req, res){
	console.log(req.url);
	if(req.url == '/upload' && req.method.toLowerCase() == 'post') {
		// 创建form对象；
		var form = new formidable.IncomingForm();
		// fields 为POST的表单数据，files为文件对象，其中包含了上传的相关文件信息；
		form.parse(req, function(err, fields, files){
			res.writeHead(200, {'Content-Type':'text/html'});
			res.write('received upload:\n');
			res.end(util.inspect({fields: fields, files: files}));
		});
		return;
	}
	res.writeHead(200, {'Content-Type':'text/html'});
	res.end('<form action="/upload" enctype="multipart/form-data" method="post">' +
		'<input type="text" name="detail"/></br>' +
		'<input type="file" name="file" multiple="multiple"/></br>' +
		'<input type="submit" value="upload">' +
		'</form>');
}).listen(3000);
